package cn.iocoder.yudao.module.project.service.electronicscalemanage;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.project.controller.admin.electronicscalemanage.vo.*;
import cn.iocoder.yudao.module.project.dal.dataobject.electronicscalemanage.ElectronicScaleManageDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;

/**
 * 电子秤管理 Service 接口
 *
 * @author 芋道源码
 */
public interface ElectronicScaleManageService {

    /**
     * 创建电子秤管理
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createElectronicScaleManage(@Valid ElectronicScaleManageSaveReqVO createReqVO);

    /**
     * 更新电子秤管理
     *
     * @param updateReqVO 更新信息
     */
    void updateElectronicScaleManage(@Valid ElectronicScaleManageSaveReqVO updateReqVO);

    /**
     * 删除电子秤管理
     *
     * @param id 编号
     */
    void deleteElectronicScaleManage(Long id);

    /**
     * 获得电子秤管理
     *
     * @param id 编号
     * @return 电子秤管理
     */
    ElectronicScaleManageDO getElectronicScaleManage(Long id);

    /**
     * 获得电子秤管理分页
     *
     * @param pageReqVO 分页查询
     * @return 电子秤管理分页
     */
    PageResult<ElectronicScaleManageDO> getElectronicScaleManagePage(ElectronicScaleManagePageReqVO pageReqVO);




    /**
     * 修改电子秤启用停用状态
     * @param updateReqVO
     */
    void updateStatus(ElectronicScaleManageSaveReqVO updateReqVO);

    // 获取用户选择使用的电子秤
    public ElectronicScaleManageDO getUsedScale(Long userId);

    // 设置用户选择使用的电子秤
    public Boolean updateUsedScale(Long userId, ElectronicScaleManageDO scale);
}